package leecode

func distinctDifferenceArray(nums []int) (result []int) {
	numMap := map[int]struct{}{}
	right := make([]int, len(nums)+1)
	for i := len(nums) - 1; i >= 0; i-- {
		numMap[nums[i]] = struct{}{}
		right[i] = len(numMap)
	}
	numMap2 := map[int]struct{}{}
	for i := 0; i < len(nums); i++ {
		numMap2[nums[i]] = struct{}{}
		result = append(result, len(numMap2)-right[i+1])
	}
	return
}
